package ycl.common.base.service;

import ycl.common.base.entity.BaseRegionEntity;
import ycl.common.models.req.BaseRegionReq;
import ycl.common.models.res.BaseRegionEntityRes;

import java.util.List;

/**
 * 地区基类逻辑层
 *
 * @author YCL
 * @date 2021-10-06 21:24:24
 */
public interface BaseRegionService
		<T extends BaseRegionEntity,
				Q extends BaseRegionReq,
				R extends BaseRegionEntityRes>
		extends BaseService<T, Q, R> {

	/**
	 * 根据本区域代码查询信息
	 *
	 * @param code 区域代码
	 * @param c    想要查询的区域真实类
	 * @return 本类
	 */
	T getByCode(String code, Class<T> c);


	/**
	 * 根据上级区域代码查询所有的区域
	 *
	 * @param code 上级区域代码
	 * @param c    要查询的类
	 * @return 子区域的集合
	 */
	List<T> getByParentCode(String code, Class<T> c);
}
